// BubbleSort.cpp
// 冒泡排序

// [8, 5, 2, 9, 5, 6, 3]

#include <vector>
#include <iostream>

using namespace std;

/*
{1, 4, 5, 6, 9}
 ^i
    ^j
*/
// 基于过程式的方法
vector<int> bubbleSort(vector<int> array) {
  for (int i = 0; i < array.size() - 1; ++i) {
    for (int j = i + 1; j < array.size(); ++j) {
      if (array[i] > array[j]) {
        swap(array[i], array[j]);
      }
    }
  }

  return array;
}

int main(int argc, char const *argv[])
{
  /* code */
  vector<int> array {4, 1, 5, 9, 6};
  array = bubbleSort(array);

  for (int n : array) {
    cout<<n<<" ";
  }

  cout<<endl;
  return 0;
}
